home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / share / aclocal / intdiv0.m4 < prev    next >
Text File  |  2005-07-26  |  2KB  |  71 lines

  1. # intdiv0.m4 serial 1 (gettext-0.11.3)
  2. dnl Copyright (C) 2002 Free Software Foundation, Inc.
  3. dnl This file is free software; the Free Software Foundation
  4. dnl gives unlimited permission to copy and/or distribute it,
  5. dnl with or without modifications, as long as this notice is preserved.
  6.  
  7. dnl From Bruno Haible.
  8.  
  9. AC_DEFUN([gt_INTDIV0],
  10. [
  11.   AC_REQUIRE([AC_PROG_CC])dnl
  12.   AC_REQUIRE([AC_CANONICAL_HOST])dnl
  13.  
  14.   AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
  15.     gt_cv_int_divbyzero_sigfpe,
  16.     [
  17.       AC_TRY_RUN([
  18. #include <stdlib.h>
  19. #include <signal.h>
  20.  
  21. static void
  22. #ifdef __cplusplus
  23. sigfpe_handler (int sig)
  24. #else
  25. sigfpe_handler (sig) int sig;
  26. #endif
  27. {
  28.   /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
  29.   exit (sig != SIGFPE);
  30. }
  31.  
  32. int x = 1;
  33. int y = 0;
  34. int z;
  35. int nan;
  36.  
  37. int main ()
  38. {
  39.   signal (SIGFPE, sigfpe_handler);
  40. /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
  41. #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
  42.   signal (SIGTRAP, sigfpe_handler);
  43. #endif
  44. /* Linux/SPARC yields signal SIGILL.  */
  45. #if defined (__sparc__) && defined (__linux__)
  46.   signal (SIGILL, sigfpe_handler);
  47. #endif
  48.  
  49.   z = x / y;
  50.   nan = y / y;
  51.   exit (1);
  52. }
  53. ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
  54.         [
  55.           # Guess based on the CPU.
  56.           case "$host_cpu" in
  57.             alpha* | i[34567]86 | m68k | s390*)
  58.               gt_cv_int_divbyzero_sigfpe="guessing yes";;
  59.             *)
  60.               gt_cv_int_divbyzero_sigfpe="guessing no";;
  61.           esac
  62.         ])
  63.     ])
  64.   case "$gt_cv_int_divbyzero_sigfpe" in
  65.     *yes) value=1;;
  66.     *) value=0;;
  67.   esac
  68.   AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
  69.     [Define if integer division by zero raises signal SIGFPE.])
  70. ])
  71.